import KNNCalculate.*;
import emailOption.getContent;
import emailOption.sendEm;


/**
 * Created by Administrator on 2016/12/2 0002.
 *
 * emailOption
 * 1.sendEmail 发送邮件的算法
 * 2.ReceiveEm 遍历邮箱的收件箱的算法
 * 3.getContent通过调用ReceiveEm读取邮箱的收件箱并将各个信件中的文字内容存储在content字符串数组中，用于邻近识别运算
 *
 * KNN算法
 * 1.AnswerList中extractMatrix方法用于统计各个词出现频率并存放于矩阵HashMap<String,ArrayList<Short>> wordfreq中
 * 2.IG调用矩阵计算各个词的信息增益值IG并存放于HashMap<String, Double> map中
 * 3.featureSelect算法通过调用增益值数组map，提取文字库中N个特征项并存放与features中（即出现频率最大的N个词）
 * 4.DVM算法通过调用文字内容以及特征项features计算各个词的矢量值，并存储在HashMap<String, Vector<Double>> dv中
 *      如果为库中文字，则还需矢量归一化，存储在HashMap<String, Vector<Double>> finalDv中
 * 5.KNN算法通过调用库中文字以及待分类文字的矢量值来计算距离以及cos余弦值，并以此判断出待测文字的类别
 *
 * sqlDb
 * 1.Data，连接数据库，获取库中待发送的邮箱联系人
 * 2.emailAr，数据类，成员有ID，address，name
 *
 */

public class Main {
    public static void main(String[] args)throws Exception{
        /*
        第一类：
            "眼睛明亮健康身体发达",
            "高大身材胳膊勇猛四肢",
            "胳膊健康身体高大健康"

        第二类：
            "美国很发达",
            "美国经济富强",
            "日本富强科技发达"
            */
        String sendText="美国与日本谁更富强或是自己的身体是否健康你更关心哪个问题";
        sendEm.Text=sendText;
        sendEm.sendToDb();//发送邮件
        /*
         * 遍历邮箱的收件箱，每一封邮件的文本内容为一个字符串
         * 全部邮件的文本内容存放于字符串数组中
         */
        String []List= getContent.getCon();

        for(int i=0;i<List.length;i++){//每次判断一封邮件的文本内容
            String res=List[i];
            KNN inst=new KNN();//计算邻近类
            inst.calDist(inst.dvm.finalDv,res);
            inst.knn(3);
        }

    }
}
